package com.lagou.task11.homework;
/**
 * 接口
 * 1、通话服务接口(通话时间，手机卡类型)            CodeCallInterface
 * 2、上网流量接口（上网流量，手机卡类型）          CodeInternetInterface
 * 抽象类
 * 1、抽象类                                      CodeAbstract
 * 普通类
 * 1、通话套餐类      CodeCallPackage         实现抽象类/通话服务接口    抽象类方法未重写
 * 2、上网套餐类      CodeInternetPackage     实现抽象类/上网服务接口    抽象类方法未重写
 * 3、用户消费类      CodeConsumption         未实现统计方法
 * 4、手机卡类        CodePhoneCard
 * 枚举类
 * 1、枚举类          CodeEnum
 */
public class CodeTest {
    public static void main(String[] args) {
        System.out.println("============================注册手机==================================");
        //  订购通话套餐
        CodeAbstract codeCallPackage = new CodeCallPackage(1,0,0);
        //  订购上网套餐
        CodeAbstract codeInternetPackage = new CodeInternetPackage(1,0);
        //  创建消费统计
        CodeConsumption codeConsumption = new CodeConsumption(codeCallPackage.getQuantity(),codeInternetPackage.getQuantity(),20);
        //  注册一张手机卡，枚举手机卡类型：大卡
        CodePhoneCard phoneCard = new CodePhoneCard(CodeEnum.B.getSize(),"10000","用户名","密码",1000,
                codeCallPackage.getQuantity(),codeInternetPackage.getQuantity());
        //  打印手机卡信息
        phoneCard.show(codeCallPackage.getQuantity(),codeInternetPackage.getQuantity());

        // 消费
        phoneCard.addCall(120,phoneCard);
        phoneCard.addInternet(20,phoneCard);

        //显示账户余额
        phoneCard.showAccountBalance();

        //再次消费测试
        phoneCard.addCall(120,phoneCard);
        phoneCard.addInternet(20,phoneCard);
        phoneCard.addCall(120,phoneCard);
        phoneCard.addInternet(20,phoneCard);
        phoneCard.showAccountBalance();
    }
}
